package com.eps.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author Renato
 */
@Entity
@Table(name = "Detalle_Pedido_Suministro")
@org.hibernate.annotations.Proxy(lazy=false)
@NamedQueries({
    @NamedQuery(name = "DetallePedidoSuministro.findAll", query = "SELECT d FROM DetallePedidoSuministro d"),
    @NamedQuery(name = "DetallePedidoSuministro.findByCodPedido", query = "SELECT d FROM DetallePedidoSuministro d WHERE d.detallePedidoSuministroPK.codPedido = :codPedido"),
    @NamedQuery(name = "DetallePedidoSuministro.findByIDSuministro", query = "SELECT d FROM DetallePedidoSuministro d WHERE d.detallePedidoSuministroPK.iDSuministro = :iDSuministro"),
    @NamedQuery(name = "DetallePedidoSuministro.findByCantidadPedida", query = "SELECT d FROM DetallePedidoSuministro d WHERE d.cantidadPedida = :cantidadPedida"),
    @NamedQuery(name = "DetallePedidoSuministro.findByObservaciones", query = "SELECT d FROM DetallePedidoSuministro d WHERE d.observaciones = :observaciones"),
    @NamedQuery(name = "DetallePedidoSuministro.findByCantidadAtendida", query = "SELECT d FROM DetallePedidoSuministro d WHERE d.cantidadAtendida = :cantidadAtendida")})
public class DetallePedidoSuministro implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetallePedidoSuministroPK detallePedidoSuministroPK;
    @Basic(optional = false)
    @Column(name = "cantidad_pedida", nullable = false, precision = 14, scale = 2)
    private BigDecimal cantidadPedida;
    @Column(name = "Observaciones", length = 200)
    private String observaciones;
    @Column(name = "cantidad_atendida", precision = 14, scale = 2)
    private BigDecimal cantidadAtendida;
    @JoinColumn(name = "Cod_Pedido", referencedColumnName = "Cod_Pedido", nullable = false, insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Pedido pedido;
    @JoinColumn(name = "ID_Suministro", referencedColumnName = "ID_Suministro", nullable = false, insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Suministros suministros;
    @JoinColumn(name = "id_tipo_administrador_tarea", referencedColumnName = "id_tabla_tipo", nullable = false)
    @ManyToOne(optional = false)
    private Tipo idTipoAdministradorTarea;
    @JoinColumn(name = "Tipo_Estado_Pedido", referencedColumnName = "id_tabla_tipo", nullable = false)
    @ManyToOne(optional = false)
    private Tipo tipoEstadoPedido;
    @JoinColumn(name = "id_almacen", referencedColumnName = "id_almacen")
    @ManyToOne
    private Almacen almacen;
    @JoinColumn(name = "id_SubAlmacen", referencedColumnName = "id_SubAlmacen")
    @ManyToOne
    private SubAlmacen subAlmacen;
    
    @Column(name = "cta_cble1")
    private String cta_cble1;
    @Column(name = "cta_cble2")
    private String cta_cble2;
 
    @Column(name = "precio_pre_orden")
    private BigDecimal precio_pre_orden;

    public DetallePedidoSuministro() {
    }

    public DetallePedidoSuministro(DetallePedidoSuministroPK detallePedidoSuministroPK) {
        this.detallePedidoSuministroPK = detallePedidoSuministroPK;
    }

    public DetallePedidoSuministro(DetallePedidoSuministroPK detallePedidoSuministroPK, BigDecimal cantidadPedida) {
        this.detallePedidoSuministroPK = detallePedidoSuministroPK;
        this.cantidadPedida = cantidadPedida;
    }

    public DetallePedidoSuministro(String codPedido, String iDSuministro) {
        this.detallePedidoSuministroPK = new DetallePedidoSuministroPK(codPedido, iDSuministro);
    }

    public DetallePedidoSuministroPK getDetallePedidoSuministroPK() {
        return detallePedidoSuministroPK;
    }

    public void setDetallePedidoSuministroPK(DetallePedidoSuministroPK detallePedidoSuministroPK) {
        this.detallePedidoSuministroPK = detallePedidoSuministroPK;
    }

	public BigDecimal getPrecio_pre_orden() {
		return precio_pre_orden;
	}

	public void setPrecio_pre_orden(BigDecimal precioPreOrden) {
		precio_pre_orden = precioPreOrden;
	}

	public Almacen getAlmacen() {
		return almacen;
	}

	public void setAlmacen(Almacen almacen) {
		this.almacen = almacen;
	}

	public SubAlmacen getSubAlmacen() {
		return subAlmacen;
	}

	public void setSubAlmacen(SubAlmacen subAlmacen) {
		this.subAlmacen = subAlmacen;
	}

	public String getCta_cble1() {
        return cta_cble1;
    }

    public void setCta_cble1(String cta_cble1) {
        this.cta_cble1 = cta_cble1;
    }

    public String getCta_cble2() {
        return cta_cble2;
    }

    public void setCta_cble2(String cta_cble2) {
        this.cta_cble2 = cta_cble2;
    }

    public BigDecimal getCantidadPedida() {
        return cantidadPedida;
    }

    public void setCantidadPedida(BigDecimal cantidadPedida) {
        this.cantidadPedida = cantidadPedida;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    public BigDecimal getCantidadAtendida() {
        return cantidadAtendida;
    }

    public void setCantidadAtendida(BigDecimal cantidadAtendida) {
        this.cantidadAtendida = cantidadAtendida;
    }

    public Pedido getPedido() {
        return pedido;
    }

    public void setPedido(Pedido pedido) {
        this.pedido = pedido;
    }

    public Suministros getSuministros() {
        return suministros;
    }

    public void setSuministros(Suministros suministros) {
        this.suministros = suministros;
    }

    public Tipo getIdTipoAdministradorTarea() {
        return idTipoAdministradorTarea;
    }

    public void setIdTipoAdministradorTarea(Tipo idTipoAdministradorTarea) {
        this.idTipoAdministradorTarea = idTipoAdministradorTarea;
    }

    public Tipo getTipoEstadoPedido() {
        return tipoEstadoPedido;
    }

    public void setTipoEstadoPedido(Tipo tipoEstadoPedido) {
        this.tipoEstadoPedido = tipoEstadoPedido;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detallePedidoSuministroPK != null ? detallePedidoSuministroPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        if (!(object instanceof DetallePedidoSuministro)) {
            return false;
        }
        DetallePedidoSuministro other = (DetallePedidoSuministro) object;
        if ((this.detallePedidoSuministroPK == null && other.detallePedidoSuministroPK != null) || (this.detallePedidoSuministroPK != null && !this.detallePedidoSuministroPK.equals(other.detallePedidoSuministroPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.DetallePedidoSuministro[detallePedidoSuministroPK=" + detallePedidoSuministroPK + "]";
    }

}
